package com.zycfc.zsf.boot.job;

import com.dangdang.ddframe.job.lite.api.strategy.*;
import javax.sql.*;
import com.dangdang.ddframe.job.lite.api.listener.*;
import com.zycfc.zsf.boot.job.listener.*;
import com.dangdang.ddframe.job.executor.handler.*;
import com.zycfc.zsf.boot.job.core.*;

public interface ZsfJobConfig
{
    default ZsfJobProperties jobProperties() {
        return null;
    }
    
    default Class<? extends JobShardingStrategy> jobShardingStrategyClass() {
        return (Class<? extends JobShardingStrategy>)ZsfAverageAllocationJobShardingStrategy.class;
    }
    
    default DataSource eventTraceRdbDataSource() {
        return null;
    }
    
    default ElasticJobListener listener() {
        return null;
    }
    
    default AbstractDistributeOnceElasticJobListener distributedListener() {
        return new ZycfcElasticJobListener(0L, 0L);
    }
    
    default Class<? extends JobExceptionHandler> jobExceptionHandler() {
        return (Class<? extends JobExceptionHandler>)ZsfJobExceptionHandler.class;
    }
    
    default Class<? extends ExecutorServiceHandler> executorServiceHandler() {
        return (Class<? extends ExecutorServiceHandler>)ZsfExecutorServiceHandler.class;
    }
}
